import { reqCategoryList, reqGetBannerList, reqFloorList } from '@/api';

const state = {
	// state中数据默认初始值不能乱写,服务器返回对象,服务器返回数组
	// 根据接口返回值初始化的
	// home仓库中存储三级菜单的数据
	categoryList: [],
	// 轮播图的数据
	bannerList: [],
	// floor组件的数据
	floorList: [],
};
// mutations 是唯一修改 state 的地方
const mutations = {
	CATEGORYLIST(state, categoryList) {
		state.categoryList = categoryList;
	},
	GETBANNERLIST(state, bannerList) {
		state.bannerList = bannerList;
	},
	GETFLOORLIST(state, floorList) {
		state.floorList = floorList;
	},
};
const actions = {
	// 通过API里面的接口函数调用, 向服务器发请求, 获取服务器的数据
	async categoryList({ commit }) {
		let result = await reqCategoryList();
		// console.log(result);
		if (result.code == 200) {
			commit('CATEGORYLIST', result.data);
		}
	},
	// 获取首页轮播图的数据
	async getBannerList({ commit }) {
		let result = await reqGetBannerList();
		if (result.code == 200) {
			commit('GETBANNERLIST', result.data);
		}
	},
	// 获取 floor 数据
	async getFloorList({ commit }) {
		let result = await reqFloorList();
		if (result.code == 200) {
			// 提交 mutations
			commit('GETFLOORLIST', result.data);
		}
	},
};
// 计算属性
const getters = {};

// home模块的小仓库
export default {
	//state: 仓库储存数据的地方
	state,
	// mutations: 修改state的唯一手段
	mutations,
	// actions: 处理 actions, 可以书写自己的业务逻辑, 也可以处理异步
	actions,
	// getters: 理解为计算属性, 用于简化仓库数据, 让组件获取仓库的数据更加方便
	getters,
};
